#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# 王者荣耀|英雄联盟
import time
import random

class Hero:

    def __init__(self, 名字, 血量, 伤害, 速度, 武器, 头像='🙄'):
        self.名字=名字
        self.血量=血量
        self.伤害=伤害 # 每次打击输出
        self.速度=速度 # 每秒打击次数（概率）
        self.头像=头像
        self.武器=武器

    # def create(s):
    #     pass

    def show(self):
        print('英雄 %s 血量：%s' % (self.头像, 
        '💧'*self.血量))

    def attack(self, other):
        # self 攻击 other
        if random.random() < self.速度:
            self.attack_anim(other)  # 攻击动画
            other.血量 -= self.伤害

    def __rshift__(self, other):
        # 魔法方法 self >> other
        pass

    def attack_anim(self, other):
        # 攻击动画
        print('[英雄 %s 攻击 英雄 %s]' % (self.头像, other.头像))
        time.sleep(0.1)
        for k in range(10):
            print('%s %s %s'%(self.头像, self.武器*k, other.头像))
            time.sleep(0.1)
            print('\n'*5)

    def isdead(self):
        return self.血量<=0

heros = {'亚瑟':Hero('亚瑟', 10,1,.7, '🔫', '🦖'),
'吕布':Hero('吕布', 10, 3,.5, '🗡', '👨'),
'貂蝉':Hero('貂蝉', 10, 5,.3, '🛡', '👧')}

def main():
    """史诗级游戏，天王巨星张家辉代言
    震撼上市。
    """
    hero1 = heros[input('挑选英雄：')]
    hero2 = heros[input('挑选对手：')]
    round = 100
    for _ in range(round):
        time.sleep(1)
        hero1.show(); hero2.show()
        hero1.attack(hero2)
        hero2.attack(hero1)
        if hero1.isdead():
            print(hero1.头像, '挂了')
            break
        if hero2.isdead():
            print(hero2.头像, '挂了')
            break
        hero1.show(); hero2.show()

main()
